package com.zzy.utils.validator;

import com.zzy.utils.validator.annotation.ListValue;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;

import java.lang.annotation.Annotation;
import java.util.HashSet;
import java.util.Set;

/**
 * @Author kazu
 * @Date 2023/2/6 12:19
 * @Version 1.0
 */
@SuppressWarnings({"all"})
public class ListValueConstraintValidator implements ConstraintValidator<ListValue, Integer> {
	
	private Set<Integer> set = new HashSet<>();
	
	/*初始化方法*/
	@Override
	public void initialize(ListValue constraintAnnotation) {
		int[] vals = constraintAnnotation.vals();
		if (vals.length != 0) {
			for (int val : vals) {
				set.add(val);
			}
		}
		
	}
	
	/**
	 * 判断是否校验成功
	 * @param value 需要校验的值
	 * @param context
	 * @return
	 */
	@Override
	public boolean isValid(Integer value, ConstraintValidatorContext context) {
		return set.contains(value);
	}
}
